home *** CD-ROM | disk | FTP | other *** search
- /*
- File: Action.h
-
- Contains: Actions for supporting undo and redo.
-
- Written by: Troy Gaul
-
- Copyright: © 1995 by Apple Computer, Inc., all rights reserved.
- */
-
- #ifndef _ACTION_
- #define _ACTION_
-
- //------------------------------------------------------------------------------
- // Forward declarations
- //------------------------------------------------------------------------------
-
- struct Environment;
- class CAction;
- class Cappuccino;
- class CCappuccinoContent;
-
- //------------------------------------------------------------------------------
- // ActionCode
- //------------------------------------------------------------------------------
-
- typedef ODUShort ActionCode;
-
- //------------------------------------------------------------------------------
- // SCappuccionActionState
- //------------------------------------------------------------------------------
-
- struct SCappuccionActionState
- {
- CAction* fAction;
- };
-
- //------------------------------------------------------------------------------
- // CAction
- //------------------------------------------------------------------------------
-
- class CAction {
-
- public:
-
- virtual ~CAction();
-
- // -- Performing --
-
- virtual void Do(Environment* ev);
-
- virtual void Undo(Environment* ev);
-
- virtual void Redo(Environment* ev);
-
- protected:
-
- CAction(Cappuccino* part, ActionCode);
-
- // -- Misc. --
-
- virtual ODName* GetActionName(Environment* ev);
-
- virtual ODName* GetUndoRedoName(Environment* ev, ODBoolean isUndo);
-
- virtual void AddToActionHistory(Environment* ev,
- ODActionType actionType = kODSingleAction);
-
- protected:
-
- Cappuccino* fPart;
- ActionCode fActionCode;
- };
-
- //------------------------------------------------------------------------------
- // CTextChangeAction
- //------------------------------------------------------------------------------
-
- class CTextChangeAction : public CAction {
-
- typedef CAction Inherited;
-
- public:
-
- CTextChangeAction(Cappuccino* part, ActionCode,
- CCappuccinoContent* newContent);
-
- virtual ~CTextChangeAction();
-
- // -- Performing --
-
- virtual void Do(Environment* ev);
-
- virtual void Undo(Environment* ev);
-
- virtual void Redo(Environment* ev);
-
- protected:
-
- CCappuccinoContent* fPreviousContent;
- CCappuccinoContent* fCurrentContent;
- };
-
- //------------------------------------------------------------------------------
- // CClipboardTextChangeAction
- //------------------------------------------------------------------------------
-
- class CClipboardTextChangeAction : public CTextChangeAction {
-
- typedef CTextChangeAction Inherited;
-
- public:
-
- CClipboardTextChangeAction(Cappuccino* part, ActionCode, ODCloneKind,
- CCappuccinoContent*);
-
- virtual ~CClipboardTextChangeAction();
-
- // -- Performing --
-
- virtual void Do(Environment* ev);
-
- virtual void Undo(Environment* ev);
-
- virtual void Redo(Environment* ev);
-
- private:
-
- ODUpdateID fUpdateID;
- ODCloneKind fCloneKind;
-
- };
-
- //------------------------------------------------------------------------------
- // CCutAction
- //------------------------------------------------------------------------------
-
- class CCutAction : public CClipboardTextChangeAction {
-
- typedef CClipboardTextChangeAction Inherited;
-
- public:
-
- CCutAction(Cappuccino* part);
-
- };
-
- //------------------------------------------------------------------------------
- // CPasteAction
- //------------------------------------------------------------------------------
-
- class CPasteAction : public CClipboardTextChangeAction {
-
- typedef CClipboardTextChangeAction Inherited;
-
- public:
-
- CPasteAction(Cappuccino* part, CCappuccinoContent*);
-
- };
-
- //------------------------------------------------------------------------------
- // CClearAction
- //------------------------------------------------------------------------------
-
- class CClearAction : public CTextChangeAction {
-
- typedef CTextChangeAction Inherited;
-
- public:
-
- CClearAction(Cappuccino* part);
-
- };
-
- //------------------------------------------------------------------------------
- // CDropAction
- //------------------------------------------------------------------------------
-
- class CDropAction : public CTextChangeAction {
-
- typedef CTextChangeAction Inherited;
-
- public:
-
- CDropAction(Cappuccino* part, CCappuccinoContent*);
-
- };
-
- //------------------------------------------------------------------------------
- // CDragBeginAction
- //------------------------------------------------------------------------------
-
- class CDragBeginAction : public CAction {
-
- typedef CAction Inherited;
-
- public:
-
- CDragBeginAction(Cappuccino* part);
-
- // -- Performing --
-
- virtual void Do(Environment* ev);
-
- };
-
- //------------------------------------------------------------------------------
- // CDragEndAction
- //------------------------------------------------------------------------------
-
- class CDragEndAction : public CAction {
-
- typedef CAction Inherited;
-
- public:
-
- CDragEndAction(Cappuccino* part);
-
- // -- Performing --
-
- virtual void Do(Environment* ev);
-
- };
-
-
- #endif